RS40B - uživatelský manuál


2.6.2 - Datové typy

Jazyk VAL3 obsahuje dva druhy datových typů a to jednoduché typy a strukturované typy. Jednoduché typy jsou proměné, které nesou například číselnou hodnotu nebo řetězec znaků. Strukturované typy jsou složitější typová data, skládající se z několika proměnných, ale lze k nim přistupovat jako k celku. Využívají se zejména pro definici bodů v prostoru a pohybu ramene.

2.6.2.1 - Jednoduché datové typy

Jazyk VAL3 nabízí 6 jednoduchých datových typů, z nichž 3 slouží pro vstupy/výstupy.

typ bool

Proměnná typu bool může nabývat pouze dvou hodnot true (pravda) nebo false (nepravda). Výhozí hodnota typu bool, pokud není inicializována je false. Tyto hodnoty se používají zejména u vyhodnocování podmínek (2.6.4).

typ num

Typ num představuje číselnou hodnotu, která může mít až 14 platných číslic. Pokud je hodnota proměnné větší, znaky budou z prava ořezány na maximální přípustnou hodnotu. Narozdíl od některých jiných jazyků nezpůsobí chybu při překladu, což někdy může vést k problémům zejména při porovnávání dvou velkých čísel.

typ string

Typ string se používá k ukládání textů. Typ string podporuje znakovou sadu Unicode. Správné zobrazení znaku záleží na druhu písma použitého na displeji. Tento typ v paměti zabírá 128 bajtů. Maximální délka řetězce je tedy závislá na použitém typu kódování znaků. Pro základní znaky z ASCII tabulky je využit jeden bajt na znak, tedy řetězec může mít délku 128 znaků. Avšak ASCII tabulka nepodporuje českou diakritiku.

typ DIO

Typ dio se používá k propojení VAL3 proměnné a digitálních vstupů/výstupů. Vstupy/výstupy deklarované v systému můžou být použity v io knihovně, aniž by musel být deklarovány jako globální nebo lokální proměnné. Typ dio je proto používán jako odkaz na systémový vstup/výstup, nebo jako parametr při volání programu.

Všechny instrukce, které používají typ dio a neodkazují na vstup/výstup deklarovaný v systému, budou generovat chybu.

typ AIO

Aio typ se používá k propojení VAL3 proměnné s numerickým vstupem/výstupem (celé nebo desetinné číslo). Vstupy/výstupy deklarované v systému můžou být použity v io knihovně, aniž by musel být deklarovány jako globální nebo lokální proměnné. Typ aio je proto používán jako odkaz na systémový analogový vstup/výstup, nebo jako parametr při volání programu.

Všechny instrukce, které používají typ aio a neodkazují na vstup/výstup deklarovaný v systému, budou generovat chybu.

typ SIO

Sio typ se používá k propojení VAL3 proměnné k sériovému portu nebo Ethernetu. Vstupy/výstupy sériového systému jsou aktivní po celou dobu. Připojení k Ethernetu je aktivováno při spuštění VAL3 programu. Ethernet se automaticky odpojí, když je VAL3 aplikace zastavena.

Pole

Jazyk VAL3 také umožňuje vytvářet a pracovat s bitovým polem. Bitové pole je spojité místo vyhrazené někde v paměti pro několik hodnot stejného datového typu. K jednotlivým hodnotám bitového pole lze přistupovat pomocí hranatých závorek. Každé pole má svůj index, přes který k němu lze přistoupit. Tento index začíná nulou, tedy pokud chceme použít první prvek použijeme pole[0].

Příklad

Lokální data:
bool b//deklarace proměnné typu bool
num cislo//deklarace proměnné typu num
num cislo2 = 10//deklarace proměnné typu num a přiřazení hodnoty
string text//deklarace proměnné typu string (tedy řetězec znaků)
num pole[10]//deklarace bitového pole o velikosti 10 hodnot (tedy 0-9)

begin//začátek programu
  b = true//přiřazení hodnoty

  a = 5//přiřazení hodnoty

  b = a//přiřazení hodnoty

  text = "Retezec znaku."//přiřazení hodnoty retezci znaku

  pole[5] = 123//pole na pozici 5 je přiřazena hodnota
end//konec programu

V tomto příkladu jsme si ukázaly jak lze pracovat s proměnným v programu. Nejprve je vypsán seznam lokálních proměnných, se kterýma budeme v programu pracovat.
Následná práce s proměnným je jednoduchá, jak můžete vidět ve zbylé části příkladu. Při přiřazování hodnoty k řetězci, je nutné tuto hodnotu uvádět v úvozovkách. Přiřazení prvku do pole je prováděno pomocí indexu v hranatých závorkách, hodnota je přidělena na pozici číslo 5, tedy na 6. pozici od začátku pole.